/*
 * Android Runner is a multiplayer GPS game fully written by "Xurxo Mendez Perez"
 * 
 * Copyright (C) 2010 "Xurxo Mendez Perez"
 *   
 * This file is part of Android Runner.
 * 
 * Android Runner is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * Android Runner is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with Android Runner.  If not, see <http://www.gnu.org/licenses/>.
 */

package es.sonxurxo.androidrunner.view.web.components.game.notfinished.list;

import org.apache.wicket.behavior.SimpleAttributeModifier;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.markup.repeater.data.DataView;
import org.apache.wicket.markup.repeater.data.IDataProvider;

import es.sonxurxo.androidrunner.model.service.game.to.GameTO;
import es.sonxurxo.androidrunner.view.web.components.game.notfinished.details.GameDetailsPanel;
import es.sonxurxo.androidrunner.view.web.components.paginator.VerticalFancyPaginator;

/**
 * @author "Xurxo Mendez Perez"
 *
 */
public class GameListPanel extends Panel {

	private static final long serialVersionUID = -6865711756863073173L;
	
	public GameListPanel(String id, IDataProvider gameProvider, final int resultsPerPage) {
		super(id);
		WebMarkupContainer gameListBox = new WebMarkupContainer("gamesListBox");
		DataView gameList = new DataView("gamesList", gameProvider, resultsPerPage) {

			private static final long serialVersionUID = -9202521669782650591L;

			@Override
			protected void populateItem(Item item) {
				GameTO gameTO = (GameTO)item.getModelObject();

				item.add(new GameDetailsPanel("gameDetails", gameTO));
				
				if (item.getIndex()%2 == 1) {
                	item.add(new SimpleAttributeModifier("class", "gameDetails-alt"));
                }
			}
		};
		gameListBox.add(gameList);
		gameListBox.setOutputMarkupId(true);
		this.add(gameListBox);
		
		VerticalFancyPaginator paginationLinks = new VerticalFancyPaginator("paginationLinks", gameList);
		this.add(paginationLinks);
        
     // No results
        WebMarkupContainer noResultsDiv = new WebMarkupContainer("noResults");
        this.add(noResultsDiv);

        if (gameList.getDataProvider().size() != 0) {
            noResultsDiv.setVisible(false);
        } else {
        	paginationLinks.setVisible(false);
        }
	}
}
